package br.com.sap.modelo;



import java.util.Date;

import br.com.sap.modelo.enums.EnumSituacao;
import br.com.sap.utils.annotations.PropriedadesCampo;

public class AnuncioObjAchado extends EntidadePermanente {
	
	@PropriedadesCampo(nomeColuna="descricao", campoObrigatorio=true, tamanhoMax = 70, tamanhoMin = 2)
	private String descricao;
	@PropriedadesCampo(nomeColuna="local", campoObrigatorio=true, tamanhoMax = 70, tamanhoMin = 2)
	private String local;
	@PropriedadesCampo(nomeColuna="observacao", campoObrigatorio=true, tamanhoMax = 70, tamanhoMin = 2)
	private String observacao;
	@PropriedadesCampo(nomeColuna="foto")
	private String foto;
	@PropriedadesCampo(nomeColuna="data_de_cadastro", campoObrigatorio=true)
	private Date data_de_cadastro;
	@PropriedadesCampo(nomeColuna="dataqachou", campoObrigatorio=true)
	private Date dataqachou;
	@PropriedadesCampo(nomeColuna="nserie", campoObrigatorio=true, tamanhoMax = 70, tamanhoMin = 2)
	private String nserie;
	@PropriedadesCampo(nomeColuna="caracteristicas", campoObrigatorio=true, tamanhoMax = 70, tamanhoMin = 2)
	private String caracteristicas;
	@PropriedadesCampo(nomeColuna="situacao", campoObrigatorio=true)
	private EnumSituacao situacao;
	@PropriedadesCampo(nomeColuna="modelo_id", campoObrigatorio=true)
	private Modelo modelo;
	@PropriedadesCampo(nomeColuna="tipomarca_id", campoObrigatorio=true)
	private TipoMarca tipoMarca;
	@PropriedadesCampo(nomeColuna="marca_id")
	private Marca marca;
	@PropriedadesCampo(nomeColuna="tipo_id", campoObrigatorio=true)
	private Tipo tipo;
	@PropriedadesCampo(nomeColuna="categoria_id", campoObrigatorio=true)
	private Categoria categoria;
	@PropriedadesCampo(nomeColuna="usuario_id", campoObrigatorio=true)
	private Usuario usuario;
	
	public Marca getMarca() {
		return marca;
	}

	public void setMarca(Marca marca) {
		this.marca = marca;
	}
			
	@PropriedadesCampo(campoNaoPersistido=true)
	private final String nomeTabela = "anuncioobjachado";
	
		
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}



	public String getLocal() {
		return local;
	}



	public void setLocal(String local) {
		this.local = local;
	}



	public String getObservacao() {
		return observacao;
	}



	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}



	public String getFoto() {
		return foto;
	}



	public void setFoto(String foto) {
		this.foto = foto;
	}



	public Date getData_de_cadastro() {
		return data_de_cadastro;
	}



	public void setData_de_cadastro(Date data_de_cadastro) {
		this.data_de_cadastro = data_de_cadastro;
	}



	public String getNserie() {
		return nserie;
	}



	public void setNserie(String nserie) {
		this.nserie = nserie;
	}



	public String getCaracteristicas() {
		return caracteristicas;
	}



	public void setCaracteristicas(String caracteristicas) {
		this.caracteristicas = caracteristicas;
	}



	public EnumSituacao getSituacao() {
		return situacao;
	}



	public void setSituacao(EnumSituacao situacao) {
		this.situacao = situacao;
	}



	public Modelo getModelo() {
		return modelo;
	}



	public void setModelo(Modelo modelo) {
		this.modelo = modelo;
	}



	public TipoMarca getTipoMarca() {
		return tipoMarca;
	}



	public void setTipoMarca(TipoMarca tipoMarca) {
		this.tipoMarca = tipoMarca;
	}



	public Tipo getTipo() {
		return tipo;
	}



	public void setTipo(Tipo tipo) {
		this.tipo = tipo;
	}



	public Categoria getCategoria() {
		return categoria;
	}



	public void setCategoria(Categoria categoria) {
		this.categoria = categoria;
	}

	public Date getDataqachou() {
		return dataqachou;
	}

	public void setDataqachou(Date dataqachou) {
		this.dataqachou = dataqachou;
	}

	public Usuario getUsuario() {
		return usuario;
	}


	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}



	@Override
	public String getNomeTabela() {
		return nomeTabela;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = super.hashCode();
		result = prime * result
				+ ((caracteristicas == null) ? 0 : caracteristicas.hashCode());
		result = prime * result
				+ ((categoria == null) ? 0 : categoria.hashCode());
		result = prime
				* result
				+ ((data_de_cadastro == null) ? 0 : data_de_cadastro.hashCode());
		result = prime * result
				+ ((dataqachou == null) ? 0 : dataqachou.hashCode());
		result = prime * result
				+ ((descricao == null) ? 0 : descricao.hashCode());
		result = prime * result + ((foto == null) ? 0 : foto.hashCode());
		result = prime * result + ((local == null) ? 0 : local.hashCode());
		result = prime * result + ((marca == null) ? 0 : marca.hashCode());
		result = prime * result + ((modelo == null) ? 0 : modelo.hashCode());
		result = prime * result
				+ ((nomeTabela == null) ? 0 : nomeTabela.hashCode());
		result = prime * result + ((nserie == null) ? 0 : nserie.hashCode());
		result = prime * result
				+ ((observacao == null) ? 0 : observacao.hashCode());
		result = prime * result
				+ ((situacao == null) ? 0 : situacao.hashCode());
		result = prime * result + ((tipo == null) ? 0 : tipo.hashCode());
		result = prime * result
				+ ((tipoMarca == null) ? 0 : tipoMarca.hashCode());
		result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (!super.equals(obj))
			return false;
		if (getClass() != obj.getClass())
			return false;
		AnuncioObjAchado other = (AnuncioObjAchado) obj;
		if (caracteristicas == null) {
			if (other.caracteristicas != null)
				return false;
		} else if (!caracteristicas.equals(other.caracteristicas))
			return false;
		if (categoria == null) {
			if (other.categoria != null)
				return false;
		} else if (!categoria.equals(other.categoria))
			return false;
		if (data_de_cadastro == null) {
			if (other.data_de_cadastro != null)
				return false;
		} else if (!data_de_cadastro.equals(other.data_de_cadastro))
			return false;
		if (dataqachou == null) {
			if (other.dataqachou != null)
				return false;
		} else if (!dataqachou.equals(other.dataqachou))
			return false;
		if (descricao == null) {
			if (other.descricao != null)
				return false;
		} else if (!descricao.equals(other.descricao))
			return false;
		if (foto == null) {
			if (other.foto != null)
				return false;
		} else if (!foto.equals(other.foto))
			return false;
		if (local == null) {
			if (other.local != null)
				return false;
		} else if (!local.equals(other.local))
			return false;
		if (marca == null) {
			if (other.marca != null)
				return false;
		} else if (!marca.equals(other.marca))
			return false;
		if (modelo == null) {
			if (other.modelo != null)
				return false;
		} else if (!modelo.equals(other.modelo))
			return false;
		if (nomeTabela == null) {
			if (other.nomeTabela != null)
				return false;
		} else if (!nomeTabela.equals(other.nomeTabela))
			return false;
		if (nserie == null) {
			if (other.nserie != null)
				return false;
		} else if (!nserie.equals(other.nserie))
			return false;
		if (observacao == null) {
			if (other.observacao != null)
				return false;
		} else if (!observacao.equals(other.observacao))
			return false;
		if (situacao != other.situacao)
			return false;
		if (tipo == null) {
			if (other.tipo != null)
				return false;
		} else if (!tipo.equals(other.tipo))
			return false;
		if (tipoMarca == null) {
			if (other.tipoMarca != null)
				return false;
		} else if (!tipoMarca.equals(other.tipoMarca))
			return false;
		if (usuario == null) {
			if (other.usuario != null)
				return false;
		} else if (!usuario.equals(other.usuario))
			return false;
		return true;
	}
}
